//obj表示要操作的元素
//json表示参数为 要操作的属性和目标值   键--属性    值--目标值
//callback 回调函数
//可以操作多个物体运动，多个属性
var flag;
function startMove( obj,json,callback ){
	clearInterval(obj.timer);
	obj.timer=setInterval(function(){
		flag=true;
		for( var attr in json ){
			if( attr=="opacity" ){
				var current=parseFloat( getStyle( obj,attr ) )*100;
			}else if( attr=="zIndex" ){
				var current=parseInt(getStyle( obj,attr ));
			}else{
				var current=parseInt(getStyle( obj,attr ));   //接收当前元素的样式值；
			}
			
			var speed=(json[attr]-current)/10;
			speed=speed>0 ? Math.ceil(speed) : Math.floor(speed);
			
			if( json[attr]!=current ){
				flag=false;
			}
			
			if( attr=="opacity" ){
				obj.style[attr]=(current+speed)/100;
			}else if( attr=="zIndex" ){
				obj.style.zIndex=current;
			}else{
				obj.style[attr]=current+speed+"px";
			}
			
			
		}
		
		if(flag){
			clearInterval(obj.timer);
			//上一个动作完成后 就开启下一个动作的执行    调用callback
			//判断 callback是否存在 存在就调用
			if( callback ){
				callback();
			}
		}
		
	},30)
}


//兼容：获取非行内的样式
function getStyle( obj,attr ){
	if( window.getComputedStyle ){
		return window.getComputedStyle(obj,false)[attr];
	}else{
		return obj.currentStyle[attr];
	}
}
